package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: xiaotutu
 * Date: 2025-01-10
 * Time: 17:43
 */
// 继承 Thread, 重写 run
class MyThread extends Thread {
    @Override
    public void run() {
        while (true) {
            System.out.println("hello thread");
            try {
                // 这里只能 try catch, 不能 throws.
                // 此处是方法重写. Java 的方法重写规则不允许子类抛出比父类方法更多的受检查异常，因为这会破坏方法的调用契约。
                // Thread 的 run() 方法没有声明抛出任何异常，因此子类重写时也不能抛出受检查的异常。
                // 在重写的时候, 也就不能 throws 异常了.
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class Demo1 {
    public static void main(String[] args) throws InterruptedException {
        MyThread myThread = new MyThread();
        myThread.start();
        // myThread.run();
        while (true) {
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }
}
